//我们从指针s指向链表的头节点，随后开始对链表进行遍历。如果当前s->next与s->next->nex对应的元素相同，那么我们就需要将 s->next以及所有后面拥有相同元素值的链表节点全部删除。我们记下这个元素值x，随后不断将s->next从链表中移除，直到s->next为空节点或者其元素值不等x止。此时，我们将链表中所有元素值为x的节点全部删除。
//如果当前s->next与s->next->next对应的元素不相同，那么说明链表中只有一个元素值为s->next 的节点，那么我们就可以将s指向s->next
//当遍历完整个链表之后，我们返回链表的的哑节点的下一个节点s->next即可。
#include <cstring>
#include<stdio.h>
#include<malloc.h>
typedef int ElemType;
//单链表的声明
typedef struct LNode
{
    ElemType data;//存储元素的数据域
    struct LNode *next;//存储后继节点
}LinkNode;
void delrepete(LinkNode *&L,ElemType e)
{
    LinkNode *s;
    while(s->next && s->next->next)
    {
        if(s->next->data=s->next->next->data)
        {   int x=s->next->data;
            while(s->next && s->next->data==x)
            {    s->next=s->next->next;
            }
        }
        else
        {
            s=s->next;
        }
    }
    return s->next;
    
}
int main()
{
    LinkNode *h;
    ElemType e;
    printf("删除重复元素\n");
    delrepete(h);
}